#ifndef FACE_H
#define FACE_H

#include <QMainWindow>
#include <opencv2/opencv.hpp>
#include <QDebug>
#include <QTcpSocket>
#include <QTimer>
#include <QJsonDocument> //json需要用到的头文件
#include <QJsonObject>   //json需要用到的头文件
using namespace cv;
using namespace std;
QT_BEGIN_NAMESPACE
namespace Ui { class face; }
QT_END_NAMESPACE

class face : public QMainWindow
{
    Q_OBJECT

public:
    face(QWidget *parent = nullptr);
    ~face();
    void timerEvent(QTimerEvent*e);//定时器 事件， 每隔100ms获取一次摄像头 一帧数据
private slots:
    void to_connect();//该函数 里调用 连接服务器函数connecttohost
    void to_start();//该函数 启动 定时器5s后去调用to_connect()，该函数用于处于断开连接，5s后重新连接服务器
    void to_stop(); //该函数说明已经连接到服务器，不用5s后重新连接服务器，停止定时器即可


    void read_data();//调用该函数来读取 服务端发来的人脸相关信息
private:
    Ui::face *ui;
    VideoCapture cap;//获取摄像头
    cv::CascadeClassifier cascade;//定义一个级联分类器对象
    QTcpSocket msocket;// 用来 建立tcp 连接
    QTimer mtim;   //用来定时
    int flag;  //表示到检测到人脸的次数
    cv::Mat facemat;//保存人脸图片 用于识别成功的显示

};
#endif // FACE_H
